脆弱性診断ツールの AeyeScan で手動巡回機能を使ってみた
AWS 事業本部コンサルティング部の中川です。
脆弱性診断ツールの AeyeScan を試す機会がありましたので、紹介します。
AeyeScanとは
AeyeScan はエーアイセキュリティラボ社にて開発された SaaS 型の脆弱性診断ツールです。OWASP Top 10 や IPA の「安全なウェブサイトの作り方」など業界標準のガイドラインに対応した Web アプリケーション診断とプラットフォーム診断に対応しています。
■AeyeScan
AeyeScan の特徴の 1 つに、AI と RPA(Robotic Process Automation)を活用した自動巡回機能があります。
一般的に Web アプリケーションの脆弱性診断では、クローリングという診断するページを取得する作業が行われます。クローリングではトップページを起点に遷移するページは自動で取得できるものの、特定の操作によって遷移するページは取得できないケースはよくあります。そのような場合は、個別に画面遷移の操作を行うことになりますが、属人化になりやすく、また発生する工数が少なくないといった点で課題がありました。
自動巡回機能は AeyeScan のクローリング機能です。RPA により実際のブラウザ操作をベースとした画面巡回を行い、入力フォームには AI が推定した値を自動入力してクローリングします。自動巡回機能によって作成された画面遷移図を元に脆弱性診断を行うため、AeyeScan は低コストかつ簡単に高精度な脆弱性診断を始めることができます。
では実際に自動巡回機能を使いながら AeyeScan の脆弱性診断を試してみます。
やってみた
以下のようなサンプルの EC サイトに対して診断を行います。
診断は以下のステップで行います。
- ドメインの登録
- ドメインアクティベーション
- 自動巡回とスキャンの登録
- 自動巡回とスキャンの実行
- 巡回結果とスキャン結果の確認
- レポートのダウンロード
1. ドメインの登録
はじめに診断対象のドメインを登録します。AeyeScan にログインするとダッシュボードが表示されます。
上部の[スキャンメニュー]から[ドメイン管理]をクリックします。
登録済みドメインの一覧が表示されます。左上の[新規ドメイン登録]をクリックします。
診断を URL を入力し、[登録]をクリックします。Basic 認証/Digest 認証が必要な場合はここで入力します。
ドメインの登録は以上です。
2. ドメインアクティベーション
ドメインのアクティベーションを行います。これは診断対象のドメインがユーザ所有であることを確認するための処理です。
[スキャンメニュー]から[ドメインアクティベーション]を選択します。
アクティベーション方法は 2 種類から選べます。
- サーバにファイルを置く
- 管理者メールに Activation 用の URL を送る方法
サーバにファイルを置く場合、[key ファイルダウンロード]からダウンロードしたファイルをドキュメントルートに配置します。ブラウザからアクセスできることを確認したら、状態が Inactive となっているスキャン対象を[Activate]をクリックし、アクティベーションが有効化されます。
ドメインアクティベーションは以上になります。
3. 自動巡回とスキャンの登録
ここから登録したドメインに対して自動巡回機能の設定をします。上部の[スキャン一覧]をクリックします。
[新規スキャン]をクリックします。
サイト・スキャン基本情報では、先程登録したドメインをプルダウンから選択します。基本オプションはデフォルトのまま進めます。対象サイトのスペックに応じて「スキャン速度(並列実行数)」を変更したり、複数のドメインで構成されるサイトは「スキャン対象ドメイン」に追加をします。
項目 | 説明 |
---|---|
サイトタイプ | 巡回に使用するブラウザをPCまたはスマートフォン表示であるか選択します。 |
スキャン種別 | スキャン時のログイン有無、ログイン後もすべてスキャンするか選択します。 |
スキャン速度 | スキャン速度 同時にクロール・スキャンする数を選択します。 |
スキャン対象ドメイン | スキャンを実施するドメインを選択します。 |
巡回対象ドメイン | 巡回時にアクセスするけど診断しないサイトを指定します。(例)Congnitoの認証画面など |
基本オプションの高度な設定を確認します。ここもデフォルトのまま進めます。
項目 | 説明 |
---|---|
セーフモード | 特定の機能を抑制したスキャンをする場合に選択します。ログイン前の [問い合わせ] 機能や、ログイン後の [退会] 機能などが対象です。 |
カスタムヘッダ | リクエストヘッダを追加します |
言語 | フォーム入力値の言語を選択します |
最大階層 | トップURLからの深さを指定します。 |
最大画面数 | 巡回の最大画面数を指定します。 |
類似画面の除外設定 | 類似ページを巡回結果から除外する強さを設定します。(例)ブログページなど |
スキャンルール | どのスキャンを行うか「Webアプリケーションの診断のみ」「Webアプリケーション+ネットワークスキャン」「Log4jの脆弱性(CVE-2021-44228)」 から選択します。 |
アクセスログ | ログの有無を選択します。 |
認証情報を設定します。通常ログイン設定に対象サイトのテストユーザを入力します。通常の診断だけでなく、アカウントロック機能やなりすましの脆弱性をスキャンを行う場合は追加でログイン情報を入力します。
項目 | 説明 |
---|---|
通常ログイン設定 | 診断対象サイトのログイン情報を入力します。 |
アカウントロック用ログイン設定 | 通常のログインとは別にアカウントロック機能を確認する場合に入力します。 |
なりすまし用ログイン設定 | なりすましの脆弱性をスキャンする場合に入力します。 |
巡回とスキャン対象を選択します。ここでは特定のパス配下を巡回・スキャンの対象外とする場合に、追加設定を行います。今回はすべて診断するため設定は行いません。
また、フォーム入力値を明示的に指定する場合は、フォーム入力値設定を行います。こちらも今回は設定しません。
最後に通知設定を行います。有効にした場合、巡回やスキャンの開始/停止/終了時に、メールや Slack に通知をするように設定します。通知設定を行いましたら[登録]をクリックします。
以上で巡回・スキャンの設定が完了しました。
4. 自動巡回とスキャンの実行
いよいよ設定した自動巡回とスキャンを実行します。
設定完了するとスキャン詳細メニューが表示されますので、[状態]のボタンをクリックします。
巡回・スキャンの内容と実施タイミングをタイミングを設定します。このまま実施するため、変更せず[開始]をクリックします。
上部から[スキャン一覧]を選択すると、設定したスキャンで状態が[Crawling]となり巡回が開始したことを確認できます。
巡回状況を確認します。スキャン一覧のメニューから[画面遷移図]をクリックします。
トップ URL からページが追加される様子をリアルタイムに確認できます。
このまま巡回が完了すると自動でスキャンも行われます。
自動巡回とスキャンの実行は以上になります。
5. 巡回結果とスキャン結果の確認
スキャン完了した環境で巡回結果とスキャンの結果を確認します。
巡回結果はスキャン一覧のメニューから[巡回結果確認]を選択します。
巡回結果として、何枚のページが見つかったのか、フィルターで指定しながら確認できます。
続いて、スキャン結果を確認していきます。結果は一覧とカテゴリ別での 2 種類の見方が可能です。
まず一覧は、スキャン一覧のメニューから[スキャン結果(一覧)]を選択します。
一覧からは、深刻度 / 脆弱性名 / 検出箇所が確認できます。
具体的に脆弱性の詳細を確認しています。一覧から脆弱性をクリックする概要が表示され、検知理由や正常時/非正常時のパラメータを確認できます。[詳細ログ]からリクエストとレスポンスを確認できます。
次に、カテゴリー別のスキャン結果を見ます。スキャン一覧から[スキャン結果(カテゴリー別)]を選択します。
脆弱性のサマリー、OWASP トップ 10 のカテゴリー別にスキャン結果を見ることができます。
詳細を確認してみます。[SQL インジェクション]をクリックすると、脆弱性の深刻度 / 概要 / 対策 / 見つかった箇所の一覧を確認することができます。
スキャン結果の確認は以上です。
6. レポートのダウンロード
ブラウザ上で確認したスキャン結果はレポートとして出力して社内共有などに利用できます。スキャン一覧から[レポートダウンロード]を選択します。
ダウロードする対象を選択します。巡回結果やスキャン結果がそれぞれ CSV /PDF / Word での出力に対応しています。また、スキャンレポートは日本語と英語のから選択も可能です。
ダウンロードしたスキャン結果レポートを見ていきます。
以下は目次、サマリー、結果の詳細の抜粋となりますが、わかりやすいレポートであることがわかるかと思います!
■目次
■ スキャンサマリー
■ スキャン詳細
自動巡回機能を使って診断してみた内容は以上になります。
さいごに
エーアイセキュリティラボ社の AeyeScan を使って、Web アプリケーションの脆弱性診断を試してみました。
自動巡回機能では、URL を登録するだけでブラウザの操作ベースでのクローリングを自動化できました。実際にやってみて、これまで人の手によって個別に取得して作業をまるっと削減でき、誰でも簡単に高精度な脆弱性診断を行えることを実感しました。
また、レポート機能では業界標準の項目が見やすくまとまっており、社内で共有して活用するのに便利な印象を受けました。
今回のご紹介した機能は AeyeScan の一部になります。手動スキャンの機能や API 連携の機能もありますので、こちらも試してみたいと思います。
AeyeScan に興味をもちましたら、以下 URL からお問い合わせください。
https://www.aeyescan.jp/